﻿using System;
using SCG = System.Collections.Generic;

using Nemerle;
using Nemerle.Assertions;
using Nemerle.Collections;
using Nemerle.Compiler;
using Nemerle.Utility;
using PT = Nemerle.Compiler.Parsetree;
using TT = Nemerle.Compiler.Typedtree;

namespace Nemerle.OpenCL {

    [MacroUsage(MacroPhase.WithTypedMembers, MacroTargets.Class)]
    macro CLProgram(tb : TypeBuilder, params args : array[expr]) {
        CLProgramImpl.Build(tb, NList.ToList(args));
    }

    module CLProgramImpl {

        public Build(tb : TypeBuilder, args : list[PT.PExpr]) : void {
            // TODO: implement macro here
            ignore( (tb, args) )
        }

    }

}